package pe.edu.claretiano.admisionmatricula.evaluacion.daoimpl;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;

import pe.edu.claretiano.admisionmatricula.bean.Evaluacion;
import pe.edu.claretiano.admisionmatricula.evaluacion.dao.EvaluacionDao;
import pe.edu.claretiano.admisionmatricula.factory.MyBatisConnectionFactory;

public class EvaluacionDaoImpl implements EvaluacionDao{
	

	private final static Logger logEvaluacionDaoImpl = Logger
			.getLogger(EvaluacionDaoImpl.class);

	private SqlSessionFactory sqlSessionFactory;

	public EvaluacionDaoImpl() {
		sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactory();
	}

	@Override
	public Integer insertarEvaluacion(Evaluacion objEvaluacion) {
		SqlSession session = sqlSessionFactory.openSession();
		Integer resultado = 0;
		try {
			resultado = session.insert(
					"Evaluacion.insertarEvaluacion",
					objEvaluacion);
			session.commit();
		} catch (Exception ex) {
			logEvaluacionDaoImpl.error(ex.getMessage());
			session.rollback();
		} finally {
			session.close();
		}
		return resultado;
	}

	@Override
	public Integer actualizarEvaluacion(Evaluacion objEvaluacion) {
		SqlSession session = sqlSessionFactory.openSession();
		Integer resultado = 0;
		try {
			resultado = session.update(
					"Evaluacion.actualizarEvaluacion",
					objEvaluacion);
			session.commit();
		} catch (Exception ex) {
			logEvaluacionDaoImpl.error(ex.getMessage());
			session.rollback();
		} finally {
			session.close();
		}
		return resultado;
	}

	@Override
	public Integer darDeBajaEvaluacion(Evaluacion objEvaluacion) {
		SqlSession session = sqlSessionFactory.openSession();
		Integer resultado = 0;
		try {
			resultado = session.update(
					"Evaluacion.eliminarEvaluacion",
					objEvaluacion);
			session.commit();
		} catch (Exception ex) {
			logEvaluacionDaoImpl.error(ex.getMessage());
			session.rollback();
		} finally {
			session.close();
		}
		return resultado;
	}

}
